﻿// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

// ReSharper disable CheckNamespace
// ReSharper disable CommentTypo
// ReSharper disable IdentifierTypo

/* Artist.cs -- тестовый класс для опытов: сведения о художнике
 * Ars Magna project, http://arsmagna.ru
 */

#region Using directives

using JetBrains.Annotations;

#endregion

#nullable enable

namespace SampleData;

/// <summary>
/// Тестовый класс для опытов: сведения о художнике.
/// </summary>
[UsedImplicitly]
public sealed class Artist
{
    #region Properties

    /// <summary>
    /// Имя.
    /// </summary>
    [UsedImplicitly]
    public string? Name { get; set; }
    
    /// <summary>
    /// Год рождения.
    /// </summary>
    [UsedImplicitly]
    public int Year { get; set; }
    
    /// <summary>
    /// Категория.
    /// </summary>
    [UsedImplicitly]
    public string? Category { get; set; }

    #endregion

    #region Construction

    /// <summary>
    /// Конструктор по умолчанию.
    /// </summary>
    public Artist()
    {
        // пустое тело конструктора
    }

    /// <summary>
    /// Конструктор.
    /// </summary>
    public Artist
        (
            string? name, 
            int year,
            string? category
        )
    {
        Name = name;
        Year = year;
        Category = category;
    }

    #endregion

    #region Public methods

    /// <summary>
    /// Русские художники.
    /// </summary>
    [UsedImplicitly]
    public static Artist[] RussianArtists() => new Artist[]
    {
        new ("Билибин, Иван Яковлевич", 1876, "Иллюстратор"),
        new ("Вальк, Генрих Оскарович", 1918, "Иллюстратор"),
        new ("Васнецов, Юрий Алексеевич", 1900, "Живописец"),
        new ("Верейский, Орест Георгиевич", 1915, "Живописец"),
        new ("Герасимов, Александр Михайлович", 1881, "Живописец"),
        new ("Дейнека, Александр Александрович", 1899, "Монументалист"),
        new ("Ефимов, Борис Ефимович", 1900, "График"),
        new ("Жаба, Альфонс Константинович", 1878, "График"),
        new ("Иогансон, Борис Владимирович", 1893, "График"),
        new ("Калита, Николай Иванович", 1926, "Плакатист"),
        new ("Карлов, Георгий Николаевич", 1905, "Иллюстратор"),
        new ("Кокорин, Анатолий Владимирович", 1908, "График"),
        new ("Гудиашвили, Ладо Давидович", 1896, "Монументалист"),
        new ("Копелян, Исаак Залманович", 1909, "Иллюстратор"),
        new ("Крейцер, Борис Генрихович", 1905, "График"),
        new ("Довгаль, Александр Михайлович", 1904, "Иллюстратор"),
        new ("Куприянов, Михаил Васильевич", 1903, "Карикатурист"),
        new ("Крылов, Порфирий Никитич", 1902, "Карикатурист"),
        new ("Соколов, Николай Александрович", 1903, "Карикатурист"),
        new ("Белкин, Вениамин Павлович", 1884, "Живописец"),
        new ("Замирайло, Виктор Дмитриевич", 1868, "Иллюстратор"),
        new ("Жуков, Николай Николаевич", 1908, "График"),
        new ("Мандельберг, Евгений Моисеевич", 1900, "Плакатист"),
        new ("Чайка, Владимир Борисович", 1955, "Плакатист"),
        new ("Лагутин, Сергей Яковлевич", 1911, "Сценограф"),
        new ("Лапин, Евгений Владимирович", 1918, "График"),
        new ("Авербах, Александр Михайлович", 1933, "Сценограф"),
        new ("Агапьева, Наталия Николаевна", 1833, "Сценограф"),
        new ("Акимов, Николай Павлович", 1901, "Сценограф"),
        new ("Бабичев, Юрий Николаевич", 1903, "Сценограф"),
        new ("Латри, Михаил Пелопидович", 1875, "Художник по керамике"),
        new ("Лебедев, Владимир Васильевич", 1891, "График"),
        new ("Лебедев, Порфирий Маркович", 1882, "Педагог"),
        new ("Левин, Соломон Давидович", 1907, "Педагог"),
        new ("Левицкий, Рафаил Сергеевич", 1844, "Живописец"),
        new ("Лентулов, Аристарх Васильевич", 1882, "Живописец"),
        new ("Лис, Эрнест Абрамович", 1934, "Ювелир"),
        new ("Ляпкало, Виктор Александрович", 1956, "Живописец"),
        new ("Маврина, Татьяна Алексеевна", 1900, "Иллюстратор"),
        new ("Маджар, Сергей Владимирович", 1958, "График"),
        new ("Мазитов, Амир Минивалеевич", 1968, "Живописец"),
        new ("Мазуровский, Виктор Викентьевич", 1859, "Баталист"),
        new ("Майков, Аполлон Аполлонович", 1866, "Живописец"),
        new ("Майоров, Александр Ильич", 1958, "Живописец"),
        new ("Маковский, Александр Владимирович", 1869, "График"),
        new ("Максимов, Константин Мефодьевич", 1913, "Живописец"),
        new ("Максютов, Рашит Гарифович", 1925, "Живописец"),
        new ("Малинка, Виктор Александрович", 1935, "Иллюстратор"),
        new ("Малышев, Михаил Георгиевич", 1852, "График"),
        new ("Мальков, Александр Павлович", 1939, "Сценограф"),
        new ("Мамчич, Степан Гаврилович", 1924, "Маринист"),
        new ("Манизер, Генрих Матвеевич", 1847, "Живописец"),
        new ("Манизер, Гуго Матвеевич", 1927, "График"),
        new ("Маргулис, Марк Моисеевич", 1948, "Скульптор"),
        new ("Маркин, Геннадий Иванович", 1946, "График"),
        new ("Миллер, Кирилл Семёнович", 1959, "Сценограф"),
        new ("Молчанова, Галина Петровна", 1929, "График"),
        new ("Мясоедов, Иван Григорьевич", 1881, "Живописец"),
        new ("Надольский, Степан Романович", 1882, "Скульптор"),
        new ("Назаров, Михаил Алексеевич", 1927, "Живописец"),
        new ("Нарбут, Георгий Иванович", 1886, "График"),
        new ("Насибулин, Энгель Хариевич", 1934, "Скульптор"),
        new ("Насыров, Юнер Яруллович", 1935, "Живописец"),
        new ("Овчаренко, Геннадий Геннадьевич", 1964, "График"),
        new ("Огородов, Геннадий Васильевич", 1907, "Живописец"),
        new ("Остроградский, Алексей Николаевич", 1868, "Живописец"),
        new ("Павлов, Александр Борисович", 1963, "Живописец"),
        new ("Панков, Фёдор Иванович", 1889, "Живописец"),
        new ("Пантелеев, Александр Васильевич", 1932, "Монументалист"),
        new ("Первухин, Константин Сергеевич", 1885, "Пейзажист"),
        new ("Победин, Константин Владимирович", 1956, "Живописец"),
        new ("Попов, Александр Борисович", 1951, "Живописец"),
        new ("Присекин, Сергей Николаевич", 1958, "Баталист"),
        new ("Пынеев, Константин Петрович", 1868, "Живописец"),
        new ("Скитальцев, Евгений Николаевич", 1918, "Маринист"),
        new ("Фесслер, Адольф Иванович", 1826, "Маринист"),
        new ("Рабин, Александр Оскарович", 1952, "Живописец"),
        new ("Радимов, Павел Александрович", 1887, "Живописец"),
        new ("Ракша, Юрий Михайлович", 1937, "Живописец"),
        new ("Репин, Илья Ефимович", 1844, "Живописец"),
        new ("Рерих, Николай Константинович", 1874, "Живописец"),
        new ("Рерих, Святослав Николаевич", 1904, "Живописец"),
        new ("Рис, Тереза Фёдоровна", 1874, "Скульптор"),
        new ("Рождественский, Василий Васильевич", 1884, "График"),
        new ("Рожкова, Евгения Емельяновна", 1901, "Живописец"),
        new ("Рубцов, Александр Александрович", 1884, "Живописец"),
        new ("Русов, Лев Александрович", 1926, "Живописец"),
        new ("Русских, Николай Андреевич", 1920, "Портретист"),
        new ("Савин, Александр Иванович", 1949, "Живописец"),
        new ("Самарин, Валентин Прохорович", 1928, "Фотограф"),
        new ("Антонов, Павел Иванович", 1962, "Фотограф"),
        new ("Белоцерковский, Михаил Лазаревич", 1944, "Фотограф"),
        new ("Сафронов, Александр Николаевич", 1922, "Скульптор"),
        new ("Сергин, Валерьян Алексеевич", 1936, "Пейзажист"),
        new ("Баженов, Всеволод Андреевич", 1909, "Пейзажист"),
        new ("Блинков, Александр Александрович", 1911, "Пейзажист"),
        new ("Васильев, Пётр Константинович", 1909, "Пейзажист"),
        new ("Скарайнис, Олег Юлиевич", 1923, "Скульптор"),
        new ("Соколов, Михаил Георгиевич", 1875, "График"),
        new ("Страхов, Валерий Николаевич", 1950, "Живописец"),
        new ("Табурин, Владимир Амосович", 1864, "Иллюстратор"),
        new ("Урядов, Иван Иванович", 1893, "Пейзажист"),
        new ("Фазылов, Хатип Сарварович", 1960, "Пейзажист"),
    };

    #endregion

    #region Object members

    /// <inheritdoc cref="object.ToString"/>
    public override string ToString() => $"Name: {Name}, year {Year}, category {Category}";

    #endregion
}
